import myAxios from '@/plugins/myAxios.js';

/**
 * 风险管控相关API
 */

/**
 * 实时风险检测
 * @param {String} userAddress - 用户地址
 * @returns {Promise} 风险检测结果
 */
export const realtimeRiskCheck = (userAddress) => {
  return myAxios.post('/fraud/realtime', userAddress);
};

/**
 * 身份冒用风险检测
 * @param {String} userAddress - 用户地址
 * @param {Array} operationLogs - 操作日志
 * @param {Array} loginLogs - 登录日志
 * @returns {Promise} 风险检测结果
 */
export const identityTheftCheck = (userAddress, operationLogs, loginLogs) => {
  return myAxios.post('/fraud/identity-theft', {
    operationLogs,
    loginLogs
  }, {
    params: { userAddress }
  });
};

/**
 * 资金异常风险检测
 * @param {String} userAddress - 用户地址
 * @param {Array} paymentRecords - 缴费记录
 * @returns {Promise} 风险检测结果
 */
export const financialAnomalyCheck = (userAddress, paymentRecords) => {
  return myAxios.post('/fraud/financial-anomaly', {
    paymentRecords
  }, {
    params: { userAddress }
  });
};

/**
 * 地域冲突风险检测
 * @param {String} userAddress - 用户地址
 * @param {Array} transferRecords - 转移记录
 * @param {Array} loginLogs - 登录日志
 * @returns {Promise} 风险检测结果
 */
export const locationConflictCheck = (userAddress, transferRecords, loginLogs) => {
  return myAxios.post('/fraud/location-conflict', {
    transferRecords,
    loginLogs
  }, {
    params: { userAddress }
  });
};

/**
 * 批量风险检测
 * @returns {Promise} 风险检测结果列表
 */
export const batchRiskDetection = () => {
  return myAxios.post('/fraud/batch');
};

/**
 * 生成风险报告
 * @param {String} address - 用户地址
 * @returns {Promise} 风险报告
 */
export const generateRiskReport = (address) => {
  return myAxios.get(`/fraud/risk-report/${address}`);
};

/**
 * 封禁用户
 * @param {Object} params - 封禁参数
 * @param {Number} params.userId - 用户ID
 * @param {Date} [params.expiryTime] - 封禁到期时间（可选，不传表示永久封禁）
 * @param {Number} params.banType - 封禁类型：1-资金操作/2-敏感操作/3-全部封禁
 * @returns {Promise} 封禁结果
 */
export const banUser = (params) => {
  return myAxios.post('/user/ban', null, { params });
};

/**
 * 解封用户
 * @param {Object} params - 解封参数
 * @param {Number} params.userId - 用户ID
 * @param {Number} [params.banType] - 解封类型：1-资金操作/2-敏感操作/3-全部解封（可选）
 * @returns {Promise} 解封结果
 */
export const unbanUser = (params) => {
  return myAxios.post('/user/unban', null, { params });
};